<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Docs For Class AccessReferenceMap</title>
  <link rel="stylesheet" href="../media/stylesheet.css" />
  <script src="../media/lib/classTree.js"></script>
<link id="webfx-tab-style-sheet" type="text/css" rel="stylesheet" href="../media/lib/tab.webfx.css" />
<script type="text/javascript" src="../media/lib/tabpane.js"></script>
  <script language="javascript" type="text/javascript" src="../media/lib/ua.js"></script>
<script language="javascript" type="text/javascript">
	var imgPlus = new Image();
	var imgMinus = new Image();
	imgPlus.src = "../media/images/plus.gif";
	imgMinus.src = "../media/images/minus.gif";
	
	function showNode(Node){
        switch(navigator.family){
        	case 'nn4':
        		// Nav 4.x code fork...
				var oTable = document.layers["span" + Node];
				var oImg = document.layers["img" + Node];
        		break;
        	case 'ie4':
        		// IE 4/5 code fork...
				var oTable = document.all["span" + Node];
				var oImg = document.all["img" + Node];
        		break;
        	case 'gecko':
        		// Standards Compliant code fork...
				var oTable = document.getElementById("span" + Node);
				var oImg = document.getElementById("img" + Node);
        		break;
        }
		oImg.src = imgMinus.src;
		oTable.style.display = "block";
	}
	
	function hideNode(Node){
        switch(navigator.family){
        	case 'nn4':
        		// Nav 4.x code fork...
				var oTable = document.layers["span" + Node];
				var oImg = document.layers["img" + Node];
        		break;
        	case 'ie4':
        		// IE 4/5 code fork...
				var oTable = document.all["span" + Node];
				var oImg = document.all["img" + Node];
        		break;
        	case 'gecko':
        		// Standards Compliant code fork...
				var oTable = document.getElementById("span" + Node);
				var oImg = document.getElementById("img" + Node);
        		break;
        }
		oImg.src = imgPlus.src;
		oTable.style.display = "none";
	}
	
	function nodeIsVisible(Node){
        switch(navigator.family){
        	case 'nn4':
        		// Nav 4.x code fork...
				var oTable = document.layers["span" + Node];
        		break;
        	case 'ie4':
        		// IE 4/5 code fork...
				var oTable = document.all["span" + Node];
        		break;
        	case 'gecko':
        		// Standards Compliant code fork...
				var oTable = document.getElementById("span" + Node);
        		break;
        }
		return (oTable && oTable.style.display == "block");
	}
	
	function toggleNodeVisibility(Node){
		if (nodeIsVisible(Node)){
			hideNode(Node);
		}else{
			showNode(Node);
		}
	}
</script>
<!-- template designed by Julien Damon based on PHPEdit's generated templates, and tweaked by Greg Beaver -->
<body bgcolor="#ffffff" ><!-- Start of Class Data -->
<h2>
	Interface AccessReferenceMap
</h2> (line <span class="linenumber">45</span>)
<div class="tab-pane" id="tabPane1">
<script type="text/javascript">
tp1 = new WebFXTabPane( document.getElementById( "tabPane1" ));
</script>

<div class="tab-page" id="Description">
<h2 class="tab">Description</h2>
<pre>
</pre>
<p>
	<b><i>Located in File: <a href="_AccessReferenceMap.php.html">/AccessReferenceMap.php</a></i></b><br>
</p>
<!-- ========== Info from phpDoc block ========= -->
<h5>Use this ESAPI security control to create access reference maps.</h5>
<div class="desc"><p>The idea behind this interface is to map a set of internal direct  object references to a set of indirect references that are safe to  disclose publicly. This can be used to help protect database keys,  filenames, and other types of direct object references. As a rule,  developers should not expose their direct object references as it  enables attackers to attempt to manipulate them.</p></div>
<ul>
		<li><strong>author:</strong> - Mike Boberski &lt;<a href="mailto:boberski_michael@bah.com">boberski_michael@bah.com</a>&gt;</li>
		<li><strong>author:</strong> - Andrew van der Stock &lt;<a href="mailto:vanderaj@owasp.org">vanderaj@owasp.org</a>&gt;</li>
		<li><strong>version:</strong> - Release: @package_version@</li>
		<li><strong>copyright:</strong> - 2009-2010 The OWASP Foundation</li>
		<li><strong>link:</strong> - <a href="http://www.owasp.org/index.php/ESAPI">http://www.owasp.org/index.php/ESAPI</a></li>
		<li><strong>license:</strong> - <a href="http://www.opensource.org/licenses/bsd-license.php">New BSD license</a></li>
	</ul>
<br /><hr />
</div>
<script type="text/javascript">tp1.addTabPage( document.getElementById( "Description" ) );</script>
<div class="tab-page" id="tabPage1">

<h2 class="tab">Class Variables</h2>
<!-- ============ VARIABLE DETAIL =========== -->
<strong>Summary:</strong><br />
<hr />
<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage1" ) );</script>
</div>
<div class="tab-page" id="constantsTabpage">

<h2 class="tab">Class Constants</h2>
<!-- ============ VARIABLE DETAIL =========== -->
<strong>Summary:</strong><br />
<hr />
<script type="text/javascript">tp1.addTabPage( document.getElementById( "constantsTabpage" ) );</script>
</div>
<div class="tab-page" id="tabPage2">
<h2 class="tab">Method Detail</h2>
<!-- ============ METHOD DETAIL =========== -->
<strong>Summary:</strong><br />
<div class="method-summary">
    <div class="method-definition">
            <span class="method-result">string</span>
        <a href="#methodaddDirectReference" title="details" class="method-name">addDirectReference</a>
        (<span class="var-type">string</span>&nbsp;<span class="var-name">$direct</span>)
        </div>
    <div class="method-definition">
            <span class="method-result">string</span>
        <a href="#methodgetDirectReference" title="details" class="method-name">getDirectReference</a>
        (<span class="var-type">string</span>&nbsp;<span class="var-name">$indirectReference</span>)
        </div>
    <div class="method-definition">
            <span class="method-result">string</span>
        <a href="#methodgetIndirectReference" title="details" class="method-name">getIndirectReference</a>
        (<span class="var-type">string</span>&nbsp;<span class="var-name">$directReference</span>)
        </div>
    <div class="method-definition">
            <span class="method-result">iterator</span>
        <a href="#methoditerator" title="details" class="method-name">iterator</a>
        ()
        </div>
    <div class="method-definition">
            <span class="method-result">does</span>
        <a href="#methodremoveDirectReference" title="details" class="method-name">removeDirectReference</a>
        (<span class="var-type">string</span>&nbsp;<span class="var-name">$direct</span>)
        </div>
    <div class="method-definition">
            <span class="method-result">does</span>
        <a href="#methodupdate" title="details" class="method-name">update</a>
        (<span class="var-type">string</span>&nbsp;<span class="var-name">$directReferences</span>)
        </div>
</div>
<hr />
<A NAME='method_detail'></A>


<a name="methodaddDirectReference" id="methodaddDirectReference"><!-- --></a>
<div style="background='#eeeeee'"><h4>
<img src="../media/images/PublicMethod.gif" border="0" /> <strong class="method">Method addDirectReference</strong> (line <span class="linenumber">92</span>)
 </h4> 
<h4><i>string</i> <strong>addDirectReference(
string
$direct)</strong></h4>

	<!-- ========== Info from phpDoc block ========= -->
<h5>Adds a direct reference to the AccessReferenceMap, then generates and returns  an associated indirect reference.</h5>
		<h4>Parameters</h4>
	<ul>
			<li><strong>string $direct</strong>: the direct reference</li>
		</ul>
		
	<h4>Info</h4>
	<ul>
			<li><strong>return</strong> - the corresponding indirect reference</li>
		</ul>
</div>
<a name="methodgetDirectReference" id="methodgetDirectReference"><!-- --></a>
<div style="background='#ffffff'"><h4>
<img src="../media/images/PublicMethod.gif" border="0" /> <strong class="method">Method getDirectReference</strong> (line <span class="linenumber">82</span>)
 </h4> 
<h4><i>string</i> <strong>getDirectReference(
string
$indirectReference)</strong></h4>

	<!-- ========== Info from phpDoc block ========= -->
<h5>Get the original direct object reference from an indirect reference.</h5>
<div class="desc"><p>Developers should use this when they get an indirect reference from a  request to translate it back into the real direct reference. If an  invalid indirect reference is requested, then an AccessControlException is  thrown.</p></div>
		<h4>Parameters</h4>
	<ul>
			<li><strong>string $indirectReference</strong>: the indirect reference</li>
		</ul>
		
	<h4>Info</h4>
	<ul>
			<li><strong>return</strong> - the direct reference</li>
			<li><strong>throws</strong> - AccessControlException if no direct reference exists for the                                 specified indirect reference</li>
		</ul>
</div>
<a name="methodgetIndirectReference" id="methodgetIndirectReference"><!-- --></a>
<div style="background='#eeeeee'"><h4>
<img src="../media/images/PublicMethod.gif" border="0" /> <strong class="method">Method getIndirectReference</strong> (line <span class="linenumber">66</span>)
 </h4> 
<h4><i>string</i> <strong>getIndirectReference(
string
$directReference)</strong></h4>

	<!-- ========== Info from phpDoc block ========= -->
<h5>Get a safe indirect reference to use in place of a potentially sensitive  direct object reference. Developers should use this call when building  URL's, form fields, hidden fields, etc... to help protect their private  implementation information.</h5>
		<h4>Parameters</h4>
	<ul>
			<li><strong>string $directReference</strong>: the direct reference</li>
		</ul>
		
	<h4>Info</h4>
	<ul>
			<li><strong>return</strong> - the indirect reference</li>
		</ul>
</div>
<a name="methoditerator" id="methoditerator"><!-- --></a>
<div style="background='#ffffff'"><h4>
<img src="../media/images/PublicMethod.gif" border="0" /> <strong class="method">Method iterator</strong> (line <span class="linenumber">54</span>)
 </h4> 
<h4><i>iterator</i> <strong>iterator(
)</strong></h4>

	<!-- ========== Info from phpDoc block ========= -->
<h5>Get an iterator through the direct object references. No guarantee is made as  to the order of items returned.</h5>
		
	<h4>Info</h4>
	<ul>
			<li><strong>return</strong> - the iterator</li>
		</ul>
</div>
<a name="methodremoveDirectReference" id="methodremoveDirectReference"><!-- --></a>
<div style="background='#eeeeee'"><h4>
<img src="../media/images/PublicMethod.gif" border="0" /> <strong class="method">Method removeDirectReference</strong> (line <span class="linenumber">104</span>)
 </h4> 
<h4><i>does</i> <strong>removeDirectReference(
string
$direct)</strong></h4>

	<!-- ========== Info from phpDoc block ========= -->
<h5>Removes a direct reference and its associated indirect reference from  the AccessReferenceMap.</h5>
		<h4>Parameters</h4>
	<ul>
			<li><strong>string $direct</strong>: the direct reference to remove</li>
		</ul>
		
	<h4>Info</h4>
	<ul>
			<li><strong>return</strong> - not return a avalue</li>
			<li><strong>throws</strong> - AccessControlException</li>
		</ul>
</div>
<a name="methodupdate" id="methodupdate"><!-- --></a>
<div style="background='#ffffff'"><h4>
<img src="../media/images/PublicMethod.gif" border="0" /> <strong class="method">Method update</strong> (line <span class="linenumber">117</span>)
 </h4> 
<h4><i>does</i> <strong>update(
string
$directReferences)</strong></h4>

	<!-- ========== Info from phpDoc block ========= -->
<h5>Updates the access reference map with a new set of direct references,</h5>
<div class="desc"><p>maintaining any existing indirect references associated with items that  are in the new list. New indirect references could be generated every time,  but that might mess up anything that previously used an indirect reference,  such as a URL parameter.</p></div>
		<h4>Parameters</h4>
	<ul>
			<li><strong>string $directReferences</strong>: a Set of direct references to add</li>
		</ul>
		
	<h4>Info</h4>
	<ul>
			<li><strong>return</strong> - not return a avalue</li>
		</ul>
</div>
<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage2" ) );</script></div>
<div class="tab-page" id="iVars">
<h2 class="tab">Inherited Variables</h2>
<script type="text/javascript">tp1.addTabPage( document.getElementById( "iVars" ) );</script>
<!-- =========== VAR INHERITED SUMMARY =========== -->
<A NAME='var_inherited_summary'><!-- --></A>
<h3>Inherited Class Variable Summary</h3>

	</div>
<div class="tab-page" id="iMethods">
<h2 class="tab">Inherited Methods</h2>
<script type="text/javascript">tp1.addTabPage( document.getElementById( "iMethods" ) );</script>
<!-- =========== INHERITED METHOD SUMMARY =========== -->
<A NAME='functions_inherited'><!-- --></A>
<h3>Inherited Method Summary</h3>

	</div>
</div>
<script type="text/javascript">
//<![CDATA[

setupAllTabs();

//]]>
</script>
	<div id="credit">
		<hr />
		Documentation generated on Fri, 21 May 2010 14:53:26 -0400 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.3</a>
	</div>
</body>
</html>